package com.uniknow.app;

import java.sql.SQLException;
import java.util.ArrayList;

import android.content.Context;

import com.uniknow.app.action.ActionCalog;
import com.uniknow.app.action.ActionSMS;
import com.uniknow.app.operate.BaseListener;

public class AppLifeCycle {
	private ActionCalog actionCalog;
	/**
	 * 方法名：onStartAtFrist
	 * 描述：app第一次启动
	 * @参数：   参数名  参数类型   参数描述
	 * @返回值类型： void   
	 * @创建时间：  2015年3月13日 
	 * @创建者：韩创
	 * @变更记录：2015年3月13日下午3:05:57 by
	 */
	public static void onStartAtFrist(final BaseListener listener){
		final Context mContext = AppContext.getInstance();
		
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				//初始化数据，短信表，联系人表的数据初始化
				try {
					//Thread.sleep(6000);
					ActionCalog.initCalllog(mContext);
					ActionSMS.initSms(mContext);
					if(listener!=null){
						listener.onSuccess("");
					}
				} catch (Exception e) {
					e.printStackTrace();
					if(listener!=null){
						listener.onError(e.getMessage());
					}
				}
			}
		}).start();
	}
	
	/**
	 * 方法名：onStart
	 * 描述：app启动
	 * @参数：   参数名  参数类型   参数描述
	 * @返回值类型： void   
	 * @创建时间：  2015年3月13日 
	 * @创建者：韩创
	 * @变更记录：2015年3月13日下午3:06:19 by
	 */
	public static void onStart(final BaseListener listener){
		final Context mContext = AppContext.getInstance();
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				//新短信通话记录的获取和保存，更新本地数据库
				ActionCalog.appendCalllog(mContext);
				ActionSMS.appendSms(mContext);
				if(listener!=null){
					listener.onSuccess("");
				}
			}
		}).start();
	}
	
	/**
	 * 方法名：onExit
	 * 描述：app退出
	 * @参数：   参数名  参数类型   参数描述
	 * @返回值类型： void   
	 * @创建时间：  2015年3月13日 
	 * @创建者：韩创
	 * @变更记录：2015年3月13日下午3:06:32 by
	 */
	public static void onExit(final BaseListener listener){
		final Context mContext = AppContext.getInstance();
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				//TODO 暂时不会用到这个，可以用来关闭数据库连接等等，但是需要app退出放到，这个回调函数里去执行，防止context为null的异常
			}
		}).start();
	}

}
